package secondStage.part3.Collections.模拟斗地主;

import java.util.ArrayList;
import java.util.Collections;

/**
 * @ClassName: [PokerDemo]
 * @Description: 模拟斗地主的洗牌、发牌、看牌
 * @Author: [黄劲松]
 * @CreateDate: [2021-04-04]
 * @Version: [v1.0]
 */
/*需求;
   通过程序实现斗地主过程中的洗牌，发牌和看牌
思路;
   1:创建一个牌盒,也就是定义一个集合对象，用ArrayList集合实现
   2:往牌盒里面装牌
   3:洗牌，也就是把牌打撒，用collections的shuffle()方法实现
   4:发牌，也就是遍历集合，给三个玩家发牌
   5:看牌，也就是三个玩家分别遍历自己的牌*/
public class PokerDemo {
    public static void main(String[] args) {
        //创建一个牌盒，依旧是定义一个集合，用ArrayList集合表示
        ArrayList<String> arrayList = new ArrayList<>();
        //往牌盒里装牌
        /*
        ♠2、♠3...
        ♥2....
        ♦2...
        ♣2...
        大王，小王
        */
        //定义花色数组
        String[] colors = {"♠", "♥", "♦", "♣"};
        //定义点数数组
        String[] numbers = {"2", "3", "4", "5", "6", "7", "8", "9", "10", "J", "Q", "K", "A"};
        for (String color : colors) {
            for (String number : numbers) {
                arrayList.add(color + number);
            }
        }
        arrayList.add("大王");
        arrayList.add("小王");
        //洗牌，用Collections的shuffle()方法
        Collections.shuffle(arrayList);
        //发牌
        ArrayList<String> wzxArray = new ArrayList<>();
        ArrayList<String> lcxArray = new ArrayList<>();
        ArrayList<String> zmArray = new ArrayList<>();
        ArrayList<String> dpArray = new ArrayList<>();
        for (int i = 0; i < arrayList.size(); i++) {
            String poker = arrayList.get(i);
            if (i >= arrayList.size() - 3) {
                dpArray.add(poker);//底牌
            } else if (i % 3 == 0) {//三个玩家，对三取余
                wzxArray.add(poker);
            } else if (i % 3 == 1) {
                lcxArray.add(poker);
            } else if (i % 3 == 2) {
                zmArray.add(poker);
            }
        }
        //看牌
        lookPoker("王祖贤", wzxArray);
        lookPoker("林超贤", lcxArray);
        lookPoker("张敏", zmArray);
        lookPoker("底牌", dpArray);
    }

    private static void lookPoker(String name, ArrayList<String> array) {
        System.out.print(name + "的牌是：");
        for (String poker : array) {
            System.out.print(poker + " ");
        }
        System.out.println();
    }
}
